﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Entidades.Sistema.Produccion;
using Mapping.Sistema.Produccion;

namespace Modelo.Sistema.Produccion
{
    public class CatalogoDiagramacionProduccion
    {
        private List<DiagramacionProduccion> Col_DiagramacionProduccion;

        public CatalogoDiagramacionProduccion()
        {
            Col_DiagramacionProduccion = MappingDiagramacionProduccion.ConsultarDiagramacionProduccion();
        }

        public List<DiagramacionProduccion> ListarDiagramacionProduccion()
        {
            return Col_DiagramacionProduccion;
        }
        public DiagramacionProduccion BuscarDiagramacionProduccion(int idDiagramacionProduccion)
        {
            return this.Col_DiagramacionProduccion.Find(x => x.IdDiagramacionProduccion == idDiagramacionProduccion);
        }

        public int AgregarDiagramacionProduccion(DiagramacionProduccion oDiagramacionProduccion)
        {
            MappingDiagramacionProduccion.AgregarDiagramacionProduccion(oDiagramacionProduccion);
            Col_DiagramacionProduccion.Add(oDiagramacionProduccion);
            return oDiagramacionProduccion.IdDiagramacionProduccion;
        }

        public void CambiarEstadoDiagramacionProduccion(DiagramacionProduccion oDiagramacionProduccion)
        {
            MappingDiagramacionProduccion.CambiarEstadoDiagramacionProduccion(oDiagramacionProduccion);
            Col_DiagramacionProduccion.RemoveAll(x => x.IdDiagramacionProduccion == oDiagramacionProduccion.IdDiagramacionProduccion);
            Col_DiagramacionProduccion.Add(oDiagramacionProduccion);
        }

        public void ModificarDiagramacionProduccion(DiagramacionProduccion oDiagramacionProduccion)
        {
            MappingDiagramacionProduccion.ModificarDiagramacionProduccion(oDiagramacionProduccion);
            Col_DiagramacionProduccion.RemoveAll(x => x.IdDiagramacionProduccion == oDiagramacionProduccion.IdDiagramacionProduccion);
            Col_DiagramacionProduccion.Add(oDiagramacionProduccion);
        }

        //public bool EliminarDiagramacionProduccion(DiagramacionProduccion oDiagramacionProduccion)
        //{
        //    Col_DiagramacionProduccion.Remove(oDiagramacionProduccion);
        //    return MappingDiagramacionProduccion.EliminarDiagramacionProduccion(oDiagramacionProduccion);
        //}
        
    }
}
